# Makefile pour la compilation avec les differents mode 
# et l'execution 
# 
# Somayya Elmata
# Théo Brasseur
#


############# Vars ##################

CC = gcc
FLAGS = -g  
FLAG = 
OBJ = obj
SRC = src
BIN = bin

############# Rules #################
all : main

main : algo-genetique.o tsm.o interface-console.o main.o 
	$(CC) $(FLAG) $(OBJ)/main.o $(OBJ)/tsm.o $(OBJ)/algo-genetique.o $(OBJ)/interface-console.o -o $(BIN)/tsm -lm

debug : algo-genetique.o tsm.o interface-console.o main.o 
	$(CC) $(FLAGS) $(OBJ)/main.o $(OBJ)/tsm.o $(OBJ)/algo-genetique.o $(OBJ)/interface-console.o -o $(BIN)/tsmdebug -lm 

sdl : algo-genetique.o tsm.o interface-console.o mainsdl.o
	$(CC) $(FLAG) $(OBJ)/mainsdl.o $(OBJ)/tsm.o $(OBJ)/algo-genetique.o $(OBJ)/interface-console.o -o $(BIN)/tsmsdl -lm -lSDLmain -lSDL_ttf `sdl-config --cflags --libs`

tsm.o : $(SRC)/tsm.c 
	$(CC) $(FLAGS) -c $(SRC)/tsm.c
	mv tsm.o $(OBJ)/tsm.o

algo-genetique.o : $(SRC)/algo-genetique.c
	$(CC) $(FLAGS) -c $(SRC)/algo-genetique.c
	mv algo-genetique.o $(OBJ)/algo-genetique.o

interface-console.o : $(SRC)/interface-console.c
	$(CC) $(FLAGS) -c $(SRC)/interface-console.c
	mv interface-console.o $(OBJ)/interface-console.o

main.o : $(SRC)/main.c 
	$(CC) $(FLAGS) -c $(SRC)/main.c
	mv main.o $(OBJ)/main.o 
	 
mainsdl.o : $(SRC)/mainsdl.c 
	$(CC) $(FLAGS) -c $(SRC)/mainsdl.c `sdl-config --cflags --libs`
	mv mainsdl.o $(OBJ)/mainsdl.o 
	
console :
	./$(BIN)/tsm

sdlexe :
	./$(BIN)/tsmsdl

clean :
	rm $(OBJ)/*.o $(BIN)/* 
    
test :
	gcc -c tsm.c
	gcc -c test.c
	gcc tsm.o test.o -o test -lm
